Artificial Intelligence (A.I.) is a very broad research area that focuses on “making computers think like people” and includes disciplines like neural networks, genetic algorithms, decision trees, frame systems, and expert systems. Knowledge representation is the area of A.I. concerned with how knowledge is represented and manipulated. Expert systems use knowledge representation to facilitate the codification of knowledge into a knowledge-base, which can be used for reasoning, i.e., this knowledge-base is operable to process data to infer conclusions. Expert systems are also known as knowledge-based systems or knowledge-based expert systems, and are considered applied artificial intelligence. The process of developing with an expert system is knowledge engineering.
Generally speaking, a rule is a logical construct for describing the operations, definitions, conditions, and/or constraints that apply to some predetermined data to achieve a goal. For example, a business rule might state that no credit check is to be performed on return customers.
Typically, a rule engine includes a suite of software modules or components that manages and automates the rules to implement the expert system. For instance, the rule engine evaluates and fires one or more rules based on the evaluation of the data against the rules. One advantage of a rule engine is the separation of the rules from the underlying application code. For many applications, the rules change more frequently than the rest of the application code. With the rules separated from the application code, the rule engine allows business users to modify the rules frequently without the help of technical staff and hence, allowing the applications to be more adaptable with the dynamic rules.
In general, rules are written in rule languages, which are typically easier for business users to master than programming code. However, to evaluate and verify the rules written, business users currently have to rely on tools written in programming code. Thus, it is difficult for business users to create rule evaluation tools that are specific for their particular application.